package com.at.c05_stack.invoke;

/**
 * 体会invokedynamic指令
 *
 * @author huangchao E-mail:fengquan8866@163.com
 * @version 创建时间：2024/7/3 17:44
 */
@FunctionalInterface
interface Func {
    boolean func(String str);
}

public class Lambda {
    public void lambda(Func func) {
        return;
    }

    public static void main(String[] args) {
        Lambda lambda = new Lambda(); // invokespecial
        Func func = s -> { // invokedynamic
            return true;
        };
        lambda.lambda(func); // invokevirtual
        lambda.lambda(s -> { // invokedynamic+invokevirtual
            return true;
        });
    }
}
